﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Painter.Models
{
    /// <summary>
    /// 板材切割输出
    /// </summary>
    public class Output :IOutput
    {
        #region 属性
        /// <summary>
        /// 板材长
        /// </summary>
        public double Length { get; set; }
        /// <summary>
        /// 板材宽
        /// </summary>
        public double Width { get; set; }
        /// <summary>
        /// 毛坯数量
        /// </summary>
        public int[] Demand { get; set; }
        /// <summary>
        /// 毛坯直径
        /// </summary>
        public double[] Diameter { get; set; }

        /// <summary>
        /// 每种排样的板材数量
        /// </summary>
        public int[] PlateNum { get; set; }
        /// <summary>
        /// 所有排样板材总数
        /// </summary>
        //Int64[] TotalNum { get; set; }
        /// <summary>
        /// 所有椭圆
        /// </summary>
        public List<int[]> Ellipses { get; set; }
        /// <summary>
        /// 所有直线
        /// </summary>
        public List<int[]> Lines { get; set; }
        /// <summary>
        /// 所有矩形
        /// </summary>
        public List<int[]> Rectangles { get; set; }
        /// <summary>
        /// 排样计算数据
        /// </summary>
        public string Data { get; set; }
        /// <summary>
        /// 排样计算结果
        /// </summary>
        public string Result { get; set; }
        /// <summary>
        /// 排样方式
        /// </summary>
        public List<List<int[]>> Plate { get; set; }
        /// <summary>
        /// 所有排样方式
        /// </summary>
        public List<List<List<int[]>>> Plates { get; set; }
        #endregion

        //public int[] diameter;
        //public int[] plateNum;
        //public int[] totalNum;
        //public List<int[]> tp;
        //public List<int[]> pp;
        //public List<int[]> tpForRight;
        //public List<int[]> div;
        //public List<int[]> ellipses;//所有椭圆
        //public List<int[]> lines;//所有直线
        //public List<int[]> rectangles;//所有矩形

        //public int[] div1;
        //public int[] div2;
        //public string str;//排样规格
        //public string str2;//排样计算结果
        //public List<List<int[]>> plate;//排样方式
        //public List<List<List<int[]>>> plates;//排样结果的所有方式
        //public static List<Output> pattern = new List<Output>();//文本所有排样的结果



    }
    /// <summary>
    /// 板材切割输出模型接口
    /// </summary>
    public partial interface IOutput
    {
        #region 属性
        /// <summary>
        /// 板材长
        /// </summary>
        double Length { get; set; }
        /// <summary>
        /// 板材宽
        /// </summary>
        double Width { get; set; }
        /// <summary>
        /// 毛坯数量
        /// </summary>
        int[] Demand { get; set; }
        /// <summary>
        /// 毛坯直径
        /// </summary>
        double[] Diameter { get; set; }

        /// <summary>
        /// 每种排样的板材数量
        /// </summary>
        int[] PlateNum { get; set; }
        /// <summary>
        /// 所有排样板材总数
        /// </summary>
        //Int64[] TotalNum { get; set; }
        /// <summary>
        /// 所有椭圆
        /// </summary>
        List<int[]> Ellipses { get; set; }
        /// <summary>
        /// 所有直线
        /// </summary>
        List<int[]> Lines { get; set; }
        /// <summary>
        /// 所有矩形
        /// </summary>
        List<int[]> Rectangles { get; set; }
        /// <summary>
        /// 排样计算数据
        /// </summary>
        string Data { get; set; }
        /// <summary>
        /// 排样计算结果
        /// </summary>
        string Result { get; set; }
        /// <summary>
        /// 排样方式
        /// </summary>
        List<List<int[]>> Plate { get; set; }
        /// <summary>
        /// 所有排样方式
        /// </summary>
        List<List<List<int[]>>> Plates { get; set; }
        #endregion

    }
}
